package com.hll.dao.user;

import com.hll.pojo.User;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

/**
 * UserDao接口
 *
 * @author: Mr.Hu
 * @create: 2021-03-07 17:14
 */
public interface UserDao {
  /**
   * 通过数据库连接connection(自己申请)和登入用户code+password
   *
   * @return: User
   */
  public User getLoginUser(Connection connection, String userCode, String pwd) throws SQLException;

  /**
   * 更新密码, Connection \用户id 和 新密码 newPwd
   *
   * @return: 影响行数
   */
  public int updatePwd(Connection connection, int id, String newPwd) throws SQLException;

  /**
   * 以 username 开头的用户名 以及其 role = role 后面两个可给可不, 比如 getUserCount(connection,null,null)返回全部用户
   *
   * @return: userCount
   */
  public int getUserCount(Connection connection, String username, Integer role) throws SQLException;

  /**
   * 通过用户名和role查询用户列表,其中currentPageNo、pageSize用来指定范围,其中userName\role可null
   *
   * <p>即返回第 (currentPageNo-1) * pageSize + 1 ~ ... + pageSize 个用户记录
   *
   * @return: User List
   */
  public List<User> getUserList(
      Connection connection, String userName, Integer role, int currentPageNo, int pageSize)
      throws SQLException;
}
